package com.gacu.viewer.client.pool;

import java.util.ArrayList;


public class PoolObservable {

	public enum NotifyMessage {ADD, DEL, UPDATE};
	
	private ArrayList<IPoolObserver> observers = new ArrayList<IPoolObserver>();
	
	public void addObserver(IPoolObserver o) {
		observers.add(o);
	}
	
	public void removeObserver(IPoolObserver o) {
		observers.remove(o);
	}
	
	public void notifyObserversAdd() {
		for(IPoolObserver o : observers){
			o.addUpdate(this);
		}
	}

	public void notifyObserversDel() {
		for(IPoolObserver o : observers){
			o.delUpdate(this);
		}
	}
	
	public void notifyObserversMod(NotifyMessage m) {
		for(IPoolObserver o : observers){
			o.modUpdate(this, m);
		}
	}
}
